#set($refForm = "this.$refs['form']")
import { remove, getList, save } from '@/api/${table.lastPackageName}/${table.entityNameLowerFirstChar}'

export default {
data() {
return {
formVisible: false,
formTitle: '添加${table.Label}',
isAdd: true,
form: {
<#list table.LabeledColumns as column>
    ${column.FieldName}:'',
</#list>
id: ''
},
listQuery: {
page: 1,
limit: 20,
id: undefined
},
total: 0,
list: null,
listLoading: true,
selRow: {}
}
},
filters: {
statusFilter(status) {
const statusMap = {
published: 'success',
draft: 'gray',
deleted: 'danger'
}
return statusMap[status]
}
},
computed: {

//表单验证
rules() {
return {
// cfgName: [
//   { required: true, message: this.$t('config.name') + this.$t('common.isRequired'), trigger: 'blur' },
//   { min: 3, max: 2000, message: this.$t('config.name') + this.$t('config.lengthValidation'), trigger: 'blur' }
// ]
}
}
},
created() {
this.init()
},
methods: {
init() {
this.fetchData()
},
fetchData() {
this.listLoading = true
getList(this.listQuery).then(response => {
this.list = response.data.records
this.listLoading = false
this.total = response.data.total
})
},
search() {
this.fetchData()
},
reset() {
this.listQuery.id = ''
this.fetchData()
},
handleFilter() {
this.listQuery.page = 1
this.getList()
},
handleClose() {

},
fetchNext() {
this.listQuery.page = this.listQuery.page + 1
this.fetchData()
},
fetchPrev() {
this.listQuery.page = this.listQuery.page - 1
this.fetchData()
},
fetchPage(page) {
this.listQuery.page = page
this.fetchData()
},
changeSize(limit) {
this.listQuery.limit = limit
this.fetchData()
},
handleCurrentChange(currentRow, oldCurrentRow) {
this.selRow = currentRow
},
resetForm() {
this.form = {
<#list table.LabeledColumns as column>
    ${column.FieldName}:'',
</#list>
id: ''
}
},
add() {
this.resetForm()
this.formTitle = '添加${table.Label}',
this.formVisible = true
this.isAdd = true
},
save() {
${refForm}.validate((valid) => {
if (valid) {
save({
<#list table.LabeledColumns as column>
    ${column.FieldName}:this.form.${column.FieldName},
</#list>
id: this.form.id
}).then(response => {
this.$message({
message: this.$t('common.optionSuccess'),
type: 'success'
})
this.fetchData()
this.formVisible = false
})
} else {
return false
}
})
},
checkSel() {
if (this.selRow && this.selRow.id) {
return true
}
this.$message({
message: this.$t('common.mustSelectOne'),
type: 'warning'
})
return false
},
edit() {
if (this.checkSel()) {
this.isAdd = false
this.form = this.selRow
this.formTitle = '编辑${table.Label}'
this.formVisible = true
}
},
remove() {
if (this.checkSel()) {
var id = this.selRow.id
this.$confirm(this.$t('common.deleteConfirm'), this.$t('common.tooltip'), {
confirmButtonText: this.$t('button.submit'),
cancelButtonText: this.$t('button.cancel'),
type: 'warning'
}).then(() => {
remove(id).then(response => {
this.$message({
message: this.$t('common.optionSuccess'),
type: 'success'
})
this.fetchData()
}).catch( err=> {
this.$notify.error({
title: '错误',
message: err
})
})
}).catch(() => {
})
}
}

}
}
